Skip to main content

Objekt: DUT

Ein DUT (Data Unit Type) deklariert einen benutzerdefinierten Datentyp, der über die vordefinierten Standardtypen hinausgeht.

. Symbol:

Sie können solche Objekte unterhalb der Applikation oder in der Ansicht POUs hinzufügen. Beim Anlegen des Objekts öffnen Sie den Dialog DUT hinzufügen. Dort können Sie den neuen Datentyp benennen und zwischen den Kategoien Struktur, Enumeration, Alias und Union wählen.

Kategorien benutzerdefinierter Datentypen

Tabelle 30. Syntax
TYPE <identifier> :
    <data type declaration>
END_TYPE

Mit TYPE und END_TYPE wird eine DUT-Deklaration eingeklammert.

TYPE <identifier> :
STRUCT
    <member deklaration>
END_STRUCT
END_TYPE

Deklaration einer Struktur

Bei einer Struktur werden die mindestens zwei Mitglieder von STRUCT und END_STRUCT eingeklammert.

TYPE <identifier> :
(
    <list of members>
) <base data type> := <inittialization> ;
END_TYPE

Deklaration einer Enumeration

Bei einer Enumeration werden die mindestens zwei Mitglieder von einer runden Klammer umfassst. Die einzelnen Mitglieder werden mit Komma separiert. Alle Mitglieder haben denselben Datentyp. Eine Enumeration kann zusätzlich von einer Textliste unterstützt werden.

Für weitere Informationen siehe: Enum mit Textlistenunterstützung

Die Textliste dient dazu, die Werte der Enumeration zu lokalisieren. Das Objekt verfügt dann zusätzlich über eine Lokalisierungsansicht.

TYPE <identifier> : <data type name> ;
END_TYPE

Deklaration eines Alias

Ein Alias ist ein alternativer Bezeichner.

TYPE <identifier> :
UNION
    <member declaration>
END_UNION
END_TYPE

Deklaration einer Union

Eine Union erlaubt die gleichzeitige Speicherung mehrerer unterschiedlicher Datentypen im selben Speicherbereich. Die Größe einer Union entspricht der Größe des größten enthaltenen Datentyps. Im Speicher liegt zu einem Zeitpunkt immer der Wert des zuletzt geschriebenen Mitglieds.

Bei einer Union werden ihre mindestens zwei Mitglieder mit UNION und END_UNION eingeklammert.



Beispiel 520. Beispiel STRUCT

Deklaration der Struktur S_POLYGONLINE mit teilweiser Initialisierung von Komponenten

TYPE S_POLYGONLINE :
STRUCT
    aiStart : ARRAY[1..2] OF INT := [-99, -99];
    aiPoint1 : ARRAY[1..2] OF INT;
    aiPoint2 : ARRAY[1..2] OF INT;
    aiPoint3 : ARRAY[1..2] OF INT;
    aiPoint4 : ARRAY[1..2] OF INT;
    aiEnd : ARRAY[1..2] OF INT := [99, 99];
END_STRUCT
END_TYPE

Deklaration der Struktur S_PENTAGON als Erweiterung von S_POLYGONLINE

TYPE S_PENTAGON EXTENDS S_POLYGONLINE :
STRUCT
    aiPoint5 : ARRAY[1..2] OF INT;
END_STRUCT
END_TYPE


Beispiel 521. Beispiel Enumeration

Deklaration der Enumeration E_TRAFFICSIGNAL

{attribute 'qualified_only'}
{attribute 'strict'}
TYPE E_TRAFFICSIGNAL :
(
    eRed,
    eYellow,
    eGreen := 10
);
END_TYPE

Enumeration mit Textlistenunterstützung in der Lokalisierungsansicht

_cds_enum_trafficsignal_localizationview.png

Am rechten Rand des Editors befinden sich die Schaltflächen _cds_img_button_textual_view.png Textuelle Ansicht und _cds_img_button_tabular_view.png Lokalisierungsansicht. Mit Klick auf die Schaltflächen können Sie zwischen den Ansichten wechseln.



Beispiel 522. Beispiel Alias

Deklaration eines Alias

TYPE A_MESSAGE : STRING[50];
END_TYPE


Beispiel 523. Beispiel UNION

Deklaration einer UNION

TYPE U_DATA :
UNION
    lrA : LREAL;
    liA : LINT;
    dwA : DWORD;
END_UNION
END_TYPE


Dialog: DUT hinzufügen

Funktion: Der Dialog dient der Konfiguration eines neuen Objekts DUT (Data Unit Type).

Aufruf: Menü ProjektObjekt hinzufügenDUT, Kontextmenü des Applikationsobjekts

Name

Name des neuen Datentyps DUT

Beispiel: S_POLYGONLINE

Tabelle 31. Datentyp

Struktur

Legt ein Objekt an, das eine Struktur deklariert, die mehrere Variablen mit unterschiedlichen Datentypen zu einer logischen Einheit zusammenfasst

Die innerhalb der Struktur deklarierten Variablen werden als Komponenten bezeichnet.

Beispiel: S_POLYGONLINE

Erweitert

standard icon: Erweitert eine bereits bestehende Struktur um weitere Komponenten

Geben Sie eine bestehende Struktur im Eingabefeld daneben an. Die Komponenten der bestehenden Strukur sind automatisch in der neuen verfügbar.

Beispiel: S_PENTAGON

Enumeration

Legt ein Objekt an, das eine Enumeration deklariert, die mehrere Integer-Konstanten zu einer logischen Einheit zusammenfasst

Die innerhalb einer Enumeration deklarierten Konstanten werden auch als Enumerationswert bezeichnet.

Beispiel: E_TRAFFICSIGNAL

Eine Enumeration kann zusätzlich eine Textliste haben. Diese dient dazu, die Werte der Enumeration zu lokalisieren. Das Objekt verfügt dann zusätzlich über eine Lokalisierungsansicht.

Textlistenunterstützung hinzufügen

_cds_icon_option_deactivated.png: Fügt eine Enumeration hinzu

standard icon: Fügt eine Enumeration mit Textlistenunterstützung hinzu. Die Textliste ermöglicht Ihnen, die Namen der Enumerationswerte zu lokalisieren.

Alias

Legt ein Objekt an, das ein Alias deklariert, mit dem ein alternativer Name für einen Basistyp, Datentyp oder einen Funktionsbaustein deklariert wird

Beispiel: A_MESSAGE

Union

Legt ein Objekt an, das eine Union deklariert, die mehrere Komponenten mit meist unterschiedlichen Datentypen zu einer logischen Einheit zusammenfasst

Alle Komponenten haben den gleichen Offset, so dass sie am selben Speicherplatz liegen. Der Speicherplatzbedarf einer Union wird bestimmt durch den Speicherplatzbedarf seiner „größten“ Komponente.

Beispiel: U_DATA

Hinzufügen

Beendet den Dialog und legt das neue Objekt an

Das Objekt erscheint im Gerätebaum oder in der Ansicht POUs mit dem Symbol cds_icon_add_dut.png. Wenn zusätzlich beim Objekt eine Textliste hinterlegt ist, erscheint das Symbol _cds_icon_textlist_dut.png.